package com.ym.medical.domain.bo;

import lombok.Data;
import lombok.ToString;

/**
 * 云信推送消息对象
 *
 * @author: 李涛
 * @version: 2019年05月24日 16:50
 */
@Data
@ToString
public class YunxinSyncDataVo {

    /**
     * 目前包含14类：
     * <p>
     * 1). "eventType"="1", 表示CONVERSATION消息，即会话类型的消息（目前包括P2P聊天消息，群组聊天消息，群组操作，好友操作）
     * <p>
     * 2). "eventType"="2", 表示LOGIN消息，即用户登录事件的消息
     * <p>
     * 3). "eventType"="3", 表示LOGOUT消息，即用户登出事件的消息
     * <p>
     * 4). "eventType"="4", 表示CHATROOM消息，即聊天室中聊天的消息
     * <p>
     * 5). "eventType"="5", 表示AUDIO/VEDIO/DataTunnel消息，即汇报实时音视频通话时长、白板事件时长的消息
     * <p>
     * 6). "eventType"="6", 表示音视频/白板文件存储信息，即汇报音视频/白板文件的大小、下载地址等消息
     * <p>
     * 7). "eventType"="7", 表示单聊消息撤回抄送
     * <p>
     * 8). "eventType"="8", 表示群聊消息撤回抄送
     * <p>
     * 9). "eventType"="9", 表示CHATROOM_INOUT信息，即汇报主播或管理员进出聊天室事件消息
     * <p>
     * 10). "eventType"="10", 表示ECP_CALLBACK信息，即汇报专线电话通话结束回调抄送的消息
     * <p>
     * 11). "eventType"="11", 表示SMS_CALLBACK信息，即汇报短信回执抄送的消息
     * <p>
     * 12). "eventType"="12", 表示SMS_REPLY信息，即汇报短信上行消息
     * <p>
     * 13). "eventType"="13", 表示AVROOM_INOUT信息，即汇报用户进出音视频/白板房间的消息
     * <p>
     * 14). "eventType"="14", 表示CHATROOM_QUEUE_OPERATE信息，即汇报聊天室队列操作的事件消息
     */
    private String eventType;

    /**
     * 会话具体类型：
     * PERSON（二人会话数据）、TEAM（群聊数据）、
     * CUSTOM_PERSON（个人自定义系统通知）、CUSTOM_TEAM（群组自定义系统通知），字符串类型
     */
    private String convType;

    /**
     * 若convType为PERSON或CUSTOM_PERSON，则to为消息接收者的用户账号，字符串类型；
     * 若convType为TEAM或CUSTOM_TEAM，则to为tid，即群id，可转为Long型数据
     */
    private String to;

    /**
     * 消息发送者的用户账号，字符串类型
     */
    private String fromAccount;

    /**
     * 发送客户端类型： AOS、IOS、PC、WINPHONE、WEB、REST，字符串类型
     */
    private String fromClientType;

    /**
     * 发送设备id，字符串类型
     */
    private String fromDeviceId;

    /**
     * 发送方昵称，字符串类型
     */
    private String fromNick;

    /**
     * 消息发送时间，字符串类型
     */
    private String msgTimestamp;

    /**
     * 会话具体类型PERSON、TEAM对应的通知消息类型：
     * TEXT、
     * PICTURE、
     * AUDIO、
     * VIDEO、
     * LOCATION 、
     * NOTIFICATION、
     * FILE、 //文件消息
     * NETCALL_AUDIO、 //网络电话音频聊天
     * NETCALL_VEDIO、 //网络电话视频聊天
     * DATATUNNEL_NEW、 //新的数据通道请求通知
     * TIPS、 //提示类型消息
     * CUSTOM //自定义消息
     * <p>
     * 会话具体类型CUSTOM_PERSON对应的通知消息类型：
     * FRIEND_ADD、 //加好友
     * FRIEND_DELETE、 //删除好友
     * CUSTOM_P2P_MSG、 //个人自定义系统通知
     * <p>
     * 会话具体类型CUSTOM_TEAM对应的通知消息类型：
     * TEAM_APPLY、 //申请入群
     * TEAM_APPLY_REJECT、 //拒绝入群申请
     * TEAM_INVITE、 //邀请进群
     * TEAM_INVITE_REJECT、 //拒绝邀请
     * TLIST_UPDATE、 //群信息更新
     * CUSTOM_TEAM_MSG、 //群组自定义系统通知
     */
    private String msgType;

    /**
     * 消息内容，字符串类型
     */
    private String body;

    /**
     * 附加消息，字符串类型
     */
    private String attach;

    /**
     * 客户端生成的消息id，仅在convType为PERSON或TEAM含此字段，字符串类型
     */
    private String msgidClient;

    /**
     * 服务端生成的消息id，可转为Long型数据
     */
    private String msgidServer;

    /**
     * 重发标记：0不是重发, 1是重发。仅在convType为PERSON或TEAM时含此字段，可转为Integer类型数据
     */
    private String resendFlag;

    /**
     * 自定义系统通知消息是否存离线:0：不存，1：存。
     * 仅在convType为CUSTOM_PERSON或CUSTOM_TEAM时含此字段，可转为Integer类型数据
     */
    private String customSafeFlag;

    /**
     * 自定义系统通知消息推送文本。仅在convType为CUSTOM_PERSON或CUSTOM_TEAM时含此字段，字符串类型
     */
    private String customApnsText;

    /**
     * 当前群成员accid列表。仅在群成员不超过200人，且convType为TEAM或CUSTOM_TEAM时包含此字段，字符串类型。
     * tMembers格式举例：
     * {
     * ... // 其他字段
     * "tMembers":"[123, 456]" //相关的accid为 123 和 456
     * }
     */
    private String tMembers;

    /**
     * 消息扩展字段
     */
    private String ext;

    /**
     * 标识是否被反垃圾，仅在被反垃圾时才有此字段，可转为Boolean类型数据
     */
    private String antispam;

    /**
     * 易盾反垃圾的原始处理细节，只有接入了相关功能易盾反垃圾的应用才会有这个字段。详见以下1.4.5.1、P2P：文本消息 和 1.4.5.2、P2P：图片消息的举例说明。
     * <p>
     * 该字段中子字段释义如下：
     * yidunBusType：0：易盾文本反垃圾业务；1、易盾图片反垃圾业务；2、用户资料反垃圾业务；3、用户头像反垃圾业务。
     * <p>
     * action：处理结果：检测结果，0：通过，1：嫌疑，2：不通过。 （只有yidunBusType为0或2时，抄送时才有此字段）
     * <p>
     * labels：具体的反垃圾判断细节：
     * 文本类反垃圾参考：
     * http://support.dun.163.com/documents/2018041901?docId=150425947576913920 labels字段的释义
     * 图片类反垃圾参考：
     * http://support.dun.163.com/documents/2018041902?docId=150429557194936320 labels字段的释义
     */
    private String yidunRes;

    /**
     * 标识点对点消息是否黑名单，仅在消息发送方被拉黑时才有此字段，可转为Boolean类型数据
     */
    private String blacklist;
}
